// 你是产品经理，目前正在带领一个团队开发新的产品。不幸的是，你的产品的最新版本没有通过质量检测。
//由于每个版本都是基于之前的版本开发的，所以错误的版本之后的所有版本都是错的。
// 假设你有 n 个版本 [1, 2, ..., n]，你想找出导致之后所有版本出错的第一个错误的版本。
// 你可以通过调用 bool isBadVersion(version) 接口来判断版本号 version 是否在单元测试中出错。
//实现一个函数来查找第一个错误的版本。你应该尽量减少对调用 API 的次数。
#include <stdio.h>
int isBadVersion(int n)
{
    if (n >= 1702766719)
    {
        return 1;
    }
    else
    {
        return 0;
    }
}

int firstBadVersion(int n)
{
    int min = 1;
    int max = n;
    if (isBadVersion(min))
        return 1;
    while (min < max)
    {
        int middle = min + (max - min) / 2;
        if (isBadVersion(middle))
        {
            max = middle;
        }
        else
        {
            min = middle;
        }
        if (!isBadVersion(min) && isBadVersion(max) && (max - min) == 1)
            return max;
    }
    return 0;
}

int main()
{
    printf("%d", firstBadVersion(2126753390));
}